<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>测试</title>
	<style>
		textarea{
			display: block;
			width: 500px;
			height: 500px;
			font-size: 12px;
		}
	</style>
</head>
	<textarea name="" id="" cols="30" rows="10"></textarea>
	<button>xx</button>
<body>
	<script>
		var area=document.querySelector("textarea");
		var btn=document.querySelector("button");
		btn.onclick=function(){
			var xxx=format(area.value);
			console.log(xxx)
		}
		function format(str){
			var originalDataArr=new Array();//用来存储原始的每条img
			var newStr;//返回的新字符串
			var newStrArr=str.split("<img ");//先去掉'<'后获得剩下内容，并且分割所有img
			for (var i = 0; i < newStrArr.length; i++) {
				if(newStrArr[i].indexOf(">")!=-1){//分别检测分割后的所有内容，若检测到'>'，即是同时拥有'<'和'>'的img标签
					originalDataArr.push(newStrArr[i].split(">")[0]);//将'>'去掉后丢入新数组
				}
			}
			
			var rawDataCopy=originalDataArr.slice(0);//原始数据的副本
			var newData=new Array();//用来存储新的每条img
			var imgHeight;//高 若原来无高则高500
			var imgWidth;//宽 固定500
			var lastWidth;//原宽(如果有的话)
			var biLi;//宽度相对原来的变化比例 若原来无宽度则比例为1
			for (var i = 0; i < rawDataCopy.length; i++) {
				if (rawDataCopy[i].indexOf("width=\"")!=-1/*&&rawDataCopy[i].charAt(rawDataCopy[i].indexOf("width=\"")+1)!="\""&&rawDataCopy[i].charAt(rawDataCopy[i].indexOf("width=\"")+1)!=""*/) {//检测原始宽度
					if(typeof parseFloat(rawDataCopy[i].split("width=\"")[1].split("\"")[0])=="number"){
						lastWidth=parseFloat(rawDataCopy[i].split("width=\"")[1].split("\"")[0])
						console.log(lastWidth)
					}else{
						lastWidth=500;//若无原始宽度则赋值500
					}
				}else{
					lastWidth=500;//若无原始宽度则赋值500
				}
				imgWidth=500;//固定宽度500
				biLi=imgWidth/lastWidth;//比例的计算
				if (rawDataCopy[i].indexOf("height=\"")!=-1/*&&rawDataCopy[i].charAt(rawDataCopy[i].indexOf("height=\"")+1)!="\""&&rawDataCopy[i].charAt(rawDataCopy[i].indexOf("height=\"")+1)!=""*/) {
					if(typeof parseFloat(rawDataCopy[i].split("height=\"")[1].split("\"")[0])=="number"){
						imgHeight=parseFloat(rawDataCopy[i].split("height=\"")[1].split("\"")[0]*biLi);

					}else{
						imgHeight=500;//若无原始高度则赋值500
					}
				}else{
					imgHeight=500;
				}
				

				newData.push(rawDataCopy[i].split("width=\"")[0]+" width=\""+Math.floor(imgWidth)+"\" "+"height=\""+Math.floor(imgHeight)+"\" ");//格式化后的数据储存进newData数组
			} 

				//新数据与旧数据的替换
			for (var i = 0; i < originalDataArr.length; i++) {		
				var ch = originalDataArr[i];
				console.log(ch);
				console.log(newData[i])
				var reg = "/"+ch+"/g";
				newStr=str.replace(eval(reg),newData[i]);
				
			}
			return newStr;
		}
			

	</script>
</body>
</html>                                                                                                                       